package com.ruoyi.system.mapper;

import java.util.List;
import java.util.Map;
import java.util.Objects;

import com.ruoyi.system.domain.VideoData;
import com.ruoyi.system.domain.VideoTask;
import org.apache.ibatis.annotations.Param;

/**
 * 任务管理Mapper接口
 * 
 * @author wsx
 * @date 2025-07-30
 */
public interface VideoTaskMapper 
{
    /**
     * 查询任务管理
     * 
     * @param taskId 任务管理主键
     * @return 任务管理
     */
    public VideoTask selectVideoTaskByTaskId(Long taskId);

    /**
     * 查询任务管理列表
     * 
     * @param videoTask 任务管理
     * @return 任务管理集合
     */
    public List<VideoTask> selectVideoTaskList(VideoTask videoTask);

    /**
     * 新增任务管理
     * 
     * @param videoTask 任务管理
     * @return 结果
     */
    public int insertVideoTask(VideoTask videoTask);

    /**
     * 修改任务管理
     * 
     * @param videoTask 任务管理
     * @return 结果
     */
    public int updateVideoTask(VideoTask videoTask);

    /**
     * 删除任务管理
     * 
     * @param taskId 任务管理主键
     * @return 结果
     */
    public int deleteVideoTaskByTaskId(Long taskId);

    /**
     * 批量删除任务管理
     * 
     * @param taskIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteVideoTaskByTaskIds(String[] taskIds);

    List<Map<String, Object>> getVideoTaskById(@Param("taskIdList") List<Long> taskIdList);

    List<Map<String, Object>> getVideoTaskJoinByTaskId(@Param("taskIdList") List<Long> taskIdList);

    List<Map<String, Object>> getVideoDataByTaskId(@Param("taskIdList") List<Long> taskIdList);

    List<Map<String, Object>> getTelemetryDataByTaskId(@Param("taskIdList") List<Long> taskIdList);

    void insertTask(Map<String, Object> map);

    int batchInsertData(List<Map<String, Object>> list);

    int batchInsertTelemetryData(List<Map<String, Object>> list);

    void batchInsertTaskDataRel(List<Map<String, Object>> list);

    void insetAnaDataLog(Map<String, Object> map);

    List<Map<String, Object>> getDataLogById(Long dataId);

    int batchInsertTasks(@Param("list") List<Map<String, Object>> taskMapList);

    int batchInsertJoins(@Param("list") List<Map<String, Object>> joinList);

    List<Map<String,Object>> selectAnaTaskDataRelByTaskId(Integer taskId);

    int deleteAnaTaskDataRelByTaskId(Integer taskId);


    List<VideoData> selectAnaDataByTaskId(Long taskId);


}
